package UserTransport


import (
	"12.2-gokit/Services/UserEndpoint"
	"context"
	"encoding/json"
	"errors"
	"github.com/gorilla/mux"
	"log"
	"net/http"
	"strconv"
	//"github.com/gorilla/mux"
)

//当外部有请求过来时，我们需要对request进行decode。
//注意，外部请求很可能是rpc，http或者其他（这里以http为例）,参数形式也是多种多样的。
func DecodeUserRequest(ctx context.Context, r *http.Request) (interface{}, error) {
	vars := mux.Vars(r)
	uid, ok := vars["uid"]
	if !ok {
		err := errors.New("参数错误")
		log.Fatal(err)
		return nil , err
	}
	atoi, _ := strconv.Atoi(uid)
	return UserEndpoint.UserRequest{atoi}, nil
	//if r.URL.Query().Get("uid") != ""{
	//	uid,_ := strconv.Atoi(r.URL.Query().Get("uid"))
	//	return UserEndpoint.UserRequest{uid} ,nil
	//}
	//return nil, errors.New("参数错误")//这
}

func EncodeUserResponse(ctx context.Context, w http.ResponseWriter,response interface{}) error {
	w.Header().Set("Content-Type", "application/json")
	return json.NewEncoder(w).Encode(response)
}
